Expose skill autocomplete state to assistive technology - #1575
Open
open-inspect[bot] wants to merge 3 commits into
Open
Expose skill autocomplete state to assistive technology#1575open-inspect[bot] wants to merge 3 commits into
open-inspect[bot] wants to merge 3 commits into
Conversation
Terraform Validation Results
Pushed by: @open-inspect[bot], Action: |
…obox-role # Conflicts: # packages/web/src/components/prompt-skill-autocomplete.test.tsx
Terraform Validation Results
Pushed by: @open-inspect[bot], Action: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes 1 root-cause task from the nightly React Doctor scan.
react-doctor/role-supports-aria-propsinpackages/web/src/components/prompt-skill-autocomplete.tsx:180aria-expanded,aria-controls,aria-autocomplete, andaria-activedescendanton a textarea with the implicittextboxrole, which does not support the expansion state.role="combobox"and update focused role-based tests.Task accounting
fixGroupId, so it counts as one ungrouped task unit.fixGroupIdwas selected or split.React Doctor results
React Doctor version:
0.9.12, schema version:3, full scope,packages/web.role-supports-aria-propsThe full before/after ID comparison reports exactly the selected diagnostic removed and no diagnostics added. The changed-scope scan against
origin/mainreports 100/100 with no findings in the two changed files.Validation
npx vitest run src/components/prompt-skill-autocomplete.test.tsx: pass, 8 testsnpm run typecheck: passnpm run lint: passnpx prettier --check packages/web: passnpm test: pass, 160 files and 1,206 testsnpx -y react-doctor@latest . --json --json-out /tmp/react-doctor-after.json --yes --blocking none: pass; selected finding removed, no new findingsnpx -y react-doctor@latest . --verbose --scope changed --base origin/main --yes --blocking none: pass, no findingsnpm run build: pre-existing failure reproduced unchanged; see belowThe change is semantic-only and has no visual output change, so browser screenshot comparison was not required. Rendered jsdom tests verify the combobox role, listbox relationship, expansion state, keyboard and pointer selection, focus retention, composition handling, and prompt-length behavior. No additional visual verification is missing.
Pre-existing failures
npm run buildcompiles and typechecks, then fails while prerendering/_global-errorwithTypeError: Cannot read properties of null (reading 'useContext'). It also emits repeated pre-existing missing-key warnings for Next-generated<html>,<head>,<meta>, and viewport boundaries. The same failure and digest (3074926929) occurred before editing.npx prettier --check .from insidepackages/webdoes not inherit the repository-root.prettierignoreand checks generated.nextoutput. The repository-scoped checknpx prettier --check packages/webfrom the root passes, as does a direct check of both changed files.Deferred findings
effect-needs-cleanupfindings were rejected as detector false positives after applying the canonical validation recipe:use-provider-device-authorization.tsalready clears both timers and aborts polling in its returned effect cleanup;use-session-transport.tscreates the socket in a later async callback and the owning mount effect closes it during teardown.js-combine-iterations,js-set-map-lookups,rerender-lazy-state-init, andrerender-memo-with-default-valuewere deferred because their canonical recipes require runtime measurements that are unavailable to unattended automation.fixGroupIdgroups remain intact for later review; none were partially fixed.Created with Open-Inspect